使用python爬取英雄联盟的图片

您所在的位置:网站首页 英雄 图片 使用python爬取英雄联盟的图片

使用python爬取英雄联盟的图片

2024-06-30 12:56| 来源: 网络整理| 查看: 265

起因:练习一下python,看到有人爬取王者荣耀的皮肤,我也来练练手。

首先查看英雄联盟英雄界面的js,还有英雄的js以及皮肤图片的url。这里我们可以看到英雄的列表是在http://lol.qq.com/biz/hero/champion.js 中 网页F12后查看元素 进入英雄界面,并查看元素 皮肤界面 这里我们可以看到图片的http://osswebimg.qq.com/images/lol/web201310/skin/big266001.jpg在这里图片的id是266001 其中266为英雄的id,而001指的是第一个。 在观察页面元素看到安妮的皮肤id和名称是在http://lol.qq.com/biz/hero/Annie.js中,至此完成了皮肤id和皮肤名称的获取。 这里写图片描述 现在开始说明思路:

获取英雄的列表。 # 获取英雄联盟英雄列表 response = urllib.request.urlopen( "http://lol.qq.com/biz/hero/champion.js") data = response.read().decode('utf-8') json1 = re.findall(r"LOLherojs.champion=(.+?);", data) hero_json = json.loads(json1[0])['keys'] 获取英雄的皮肤id和名字。 c = [] for key in hero_json: # print("****key--:%s value--: %s" % (key, hero_json[key])) url_skin = "http://lol.qq.com/biz/hero/" + hero_json[key] + ".js" c.append(url_skin) 拼接出图片的url并下载。 urlDown = "http://ossweb-img.qq.com/images/lol/web201310/skin/big" + imgId + ".jpg"

下面是全部的代码

# 代码片段1 import urllib.request import json import os import pathlib import re from bs4 import BeautifulSoup # 获取ID和name,并下载 def json_txt(jsonSkinSJSON, defalut): jsonSkinSJSON = jsonSkinSJSON["data"]["skins"] i = 0 imgId = "" imgName = "" for key in jsonSkinSJSON: if i == 0: # print(key["id"]) imgId = key["id"] # print(defalut) imgName = defalut i = i + 1 else: imgId = key["id"] imgName = key["name"] save_dir = 'D:\LOLheroskin\\' save_file_name = save_dir + imgName + ".jpg" urlDown = "http://ossweb-img.qq.com/images/lol/web201310/skin/big" + imgId + ".jpg" # print(urlDown) try: if not os.path.exists(save_file_name): urllib.request.urlretrieve(urlDown, save_file_name) except Exception: print("下载失败") # 获取英雄联盟皮肤 def getSkins(urlOne): response = urllib.request.urlopen( urlOne) data = response.read().decode('utf-8') # print(data) jsonSkin = re.findall(r"{\"data\":(.+?);", data) jsonSkinS = "{\"data\":" + jsonSkin[0] jsonSkinSJSON = json.loads(jsonSkinS) # print(jsonSkinSJSON["data"]["name"]) defalut = jsonSkinSJSON["data"]["name"] json_txt(jsonSkinSJSON, defalut) # 获取英雄联盟英雄列表 response = urllib.request.urlopen( "http://lol.qq.com/biz/hero/champion.js") data = response.read().decode('utf-8') json1 = re.findall(r"LOLherojs.champion=(.+?);", data) hero_json = json.loads(json1[0])['keys'] c = [] for key in hero_json: # print("****key--:%s value--: %s" % (key, hero_json[key])) url_skin = "http://lol.qq.com/biz/hero/" + hero_json[key] + ".js" c.append(url_skin) # 文件夹不存在则创建 save_dir = 'D:\LOLheroskin\\' if not os.path.exists(save_dir): os.mkdir(save_dir) for heroOne in c: getSkins(heroOne) print("下载完成")


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3